1. Field of the Invention
The present invention generally relates to audio hardware, and, more specifically, to a system and method for detecting errors in audio data.
2. Description of the Related Art
A conventional media player application, such as a Blu-Ray™ player application, streams audio data to hardware that processes the audio data and then causes speakers to output sound derived from that audio data. The hardware could be, for example, a graphics processing unit (GPU) that includes audio processing circuitry.
When the media player application streams the audio data to hardware, the data passes through an operating system (OS) layer to an audio driver. The audio driver is a software application executing within the OS layer that is capable of communicating directly with the hardware. When the audio data passes through the OS layer to the audio driver, that data may become modified, or even compromised, before reaching the audio hardware. For example, some OSs append invalid NULL values to the end of the audio data in order to fill a playback buffer, thereby introducing errors into that data. The audio data may also become compromised by random bit flips or other unpredictable data-altering events. Another instance of data becoming comprised occurs when the OS is heavily loaded and audio data is not written to a given location before audio hardware reads from that location, causing the hardware to fetch stale data.
Problems arise because conventional audio hardware may not be able to detect that the audio data has been compromised and may attempt to output sound derived from that audio data despite the data being compromised. Sound derived from compromised audio data may be full of noise and unintelligible or, worse yet, noisy and unpleasant to the ears of the user of the media player application. Providing an unpleasant user experience is unacceptable to providers of media player applications as well as to manufacturers of hardware that supports media players, such as GPU manufacturers.
Accordingly, what is needed in the art is a more effective technique for detecting errors in audio data.